package br.com.bmb.monitorimoveis.entidade;

import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;


import org.springframework.beans.factory.annotation.Autowired;

import br.com.bmb.monitorimoveis.servico.ITipoAnuncioService;

@Entity
@Table(name="ANUNCIO")
public class Anuncio {
	
	@Id
	@GeneratedValue(strategy = GenerationType.AUTO)
	@Column(name = "idAnuncio", nullable = false)
	private Long idAnuncio;
	
	@Column
	private String localizacao;
	
	@Column
	private int quartos;
	
	@Column
	private int suites;
	
	@Column
	private int vagas;
	
	@Column
	private double areaUtil;
	
	@Column
	private double preco;
	
	@Column
	private double precoM2;
	
	@ManyToOne
	@JoinColumn(name="id_tipo_anuncio", referencedColumnName="id_tipo_anuncio")
	private TipoAnuncio tipoAnuncio;
	
	@Column
	private int codigo;
	
	@Column
	private Date dataAtualizacao;
	

	
	@ManyToOne
	@JoinColumn(name="id_bairro", referencedColumnName="id_bairro")
	private Bairro bairro;
	
	@Column
	private String tipoImovel;
	
	@Column
	private int elevadores;
	
	@Column
	private boolean pronto;
	
	@Column
	private double precoCondominio;
	
	@Column
	private String posicao;
	
	@Column
	private String posicaoSol;
	
	@Column
	private int andares;
	
	@Column
	private boolean aceitaFinanciamento;
	
	@Column
	private double precoAgio;
	
	@Column
	private double areaTerreno;
	
	@Column
	private double areaTotal;
	
	@Column
	private int andar;
	
	
	public Anuncio() {
	}

	public String toString() {
		StringBuffer sb = new StringBuffer("\n");

		sb.append("localização=" + localizacao);
		sb.append(", quartos=" + quartos);
		sb.append(", suites=" + suites);
		sb.append(", vagas=" + vagas);
		sb.append(", elevadores=" + elevadores);
		sb.append(", areaUtil=" + areaUtil);
		sb.append(", valor=" + preco);
		sb.append(", valorM2=" + precoM2);
		sb.append(", tipoAnuncio=" + tipoAnuncio);
		sb.append(", codigo=" + codigo);
		sb.append(", atualizacao=" + dataAtualizacao);		
		sb.append(", bairro=" + bairro);
		sb.append(", tipoImovel=" + tipoImovel);
		sb.append(", pronto=" + (pronto == true ? "Sim" : "Não"));
		sb.append(", condominio=" + precoCondominio);
		sb.append(", posicao=" + posicao);
		sb.append(", posicaoSol=" + posicaoSol);
		sb.append(", andar=" + andar);
		sb.append(", andares=" + andares);
		sb.append(", aceitaFinanceamento=" + (aceitaFinanciamento == true ? "Sim" : "Não"));
		sb.append(", valorAgio=" + precoAgio);
		sb.append(", areaTerreno=" + areaTerreno);
		sb.append(", areaTotal=" + areaTotal);

		return sb.toString();
	}

	public String getLocalizacao() {
		return localizacao;
	}

	public void setLocalizacao(String localizacao) {
		this.localizacao = localizacao;
	}

	public int getQuartos() {
		return quartos;
	}

	public void setQuartos(int quartos) {
		this.quartos = quartos;
	}

	public int getSuites() {
		return suites;
	}

	public void setSuites(int suites) {
		this.suites = suites;
	}

	public int getVagas() {
		return vagas;
	}

	public void setVagas(int vagas) {
		this.vagas = vagas;
	}

	public double getAreaUtil() {
		return areaUtil;
	}

	public void setAreaUtil(double areaUtil) {
		this.areaUtil = areaUtil;
	}

	public double getPreco() {
		return preco;
	}

	public void setPreco(double preco) {
		this.preco = preco;
	}

	public double getPrecoM2() {
		return precoM2;
	}

	public void setPrecoM2(double precoM2) {
		this.precoM2 = precoM2;
	}

	public TipoAnuncio getTipoAnuncio() {
		return tipoAnuncio;
	}

	public void setTipoAnuncio(TipoAnuncio tipoAnuncio) {
		this.tipoAnuncio = tipoAnuncio;
	}	

	public int getCodigo() {
		return codigo;
	}

	public void setCodigo(int codigo) {
		this.codigo = codigo;
	}

	public Date getDataAtualizacao() {
		return dataAtualizacao;
	}

	public void setDataAtualizacao(Date dataAtualizacao) {
		this.dataAtualizacao = dataAtualizacao;
	}



	public Bairro getBairro() {
		return bairro;
	}

	public void setBairro(Bairro bairro) {
		this.bairro = bairro;
	}

	public String getTipoImovel() {
		return tipoImovel;
	}

	public void setTipoImovel(String tipoImovel) {
		this.tipoImovel = tipoImovel;
	}

	public int getElevadores() {
		return elevadores;
	}

	public void setElevadores(int elevadores) {
		this.elevadores = elevadores;
	}

	public boolean isPronto() {
		return pronto;
	}

	public void setPronto(boolean pronto) {
		this.pronto = pronto;
	}

	public double getPrecoCondominio() {
		return precoCondominio;
	}

	public void setPrecoCondominio(double precoCondominio) {
		this.precoCondominio = precoCondominio;
	}

	public String getPosicao() {
		return posicao;
	}

	public void setPosicao(String posicao) {
		this.posicao = posicao;
	}

	public String getPosicaoSol() {
		return posicaoSol;
	}

	public void setPosicaoSol(String posicaoSol) {
		this.posicaoSol = posicaoSol;
	}

	public int getAndares() {
		return andares;
	}

	public void setAndares(int andares) {
		this.andares = andares;
	}

	public boolean isAceitaFinanciamento() {
		return aceitaFinanciamento;
	}

	public void setAceitaFinanciamento(boolean aceitaFinanciamento) {
		this.aceitaFinanciamento = aceitaFinanciamento;
	}

	public double getPrecoAgio() {
		return precoAgio;
	}

	public void setPrecoAgio(double precoAgio) {
		this.precoAgio = precoAgio;
	}
	
	public double getAreaTerreno() {
		return areaTerreno;
	}

	public void setAreaTerreno(double areaTerreno) {
		this.areaTerreno = areaTerreno;
	}

	public double getAreaTotal() {
		return areaTotal;
	}

	public void setAreaTotal(double areaTotal) {
		this.areaTotal = areaTotal;
	}

	public int getAndar() {
		return andar;
	}

	public void setAndar(int andar) {
		this.andar = andar;
	}


	public Long getIdAnuncio() {
		return idAnuncio;
	}

	public void setIdAnuncio(Long idAnuncio) {
		this.idAnuncio = idAnuncio;
	}

}
